void lfun()
{
	ASSERT(origin() == "local");
}

void co()
{
	ASSERT(origin() == "internal");
}

void ef()
{
	ASSERT(origin() == "efun");
}

void do_tests()
{
	ASSERT(origin() == "call_other");
	lfun();
	call_out("co", 1);
	filter((
			{	1}), "ef");
ASSERT(evaluate( (: origin :)) == "function pointer");
ASSERT(evaluate( (: origin() :)) == "functional");
}
